//config的设置是全局的
layui.config({
    base: '/js/plugins/' // 自定义扩展插件所在的目录
}).extend({ //设定模块别名
    yjslayer: 'yjslayer',
    yjsloading: 'yjsloading',
});


layui.use(['yjslayer', 'yjsloading', 'table','form'], function () {
    var $ = layui.jquery
        , yjslayer = layui.yjslayer
        , yjsloading = layui.yjsloading
        , form = layui.form
        , table = layui.table;

    // 获取csrf-token
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    // 数据表格方法级渲染
    var tbObj = table.render({
        elem: '#dataBody' // 绑定元素
        , id: 'toolPayList' // 唯一ID
        , height: 'full-20' //高度最大化减去差值
        , url: '/tools/pay/index' // 接口地址 默认会自动传递两个参数：?page=1&limit=30
        , method: 'post' // 接口请求方法
        , page: true
        , skin: 'row' //行边框风格
        , even: true //开启隔行背景
        , limits: [10, 30, 60, 90, 150]
        , limit: 10 //默认采用30
        , cols: [[
            // {checkbox: true, fixed: true}
            {field: 'enrollment_numbering', title: '招生编号', width: 150,fixed:true}
            , {field: 'exam_code', title: '考试号', width: 150}
            , {field: 'name', title: '姓名', width: 100}
            , {field: 'sex', title: '性别', width: 80}
            , {field: 'card_type', title: '证件类型', width: 100}
            , {field: 'card_number', title: '证件号', width: 200}
            , {field: 'created_at', title: '报到时间', width: 165}
            , {field: 'updated_at', title: '修改时间', sort: true, width: 165}
            // , {field: 'created_at', title: '创建时间', sort: true, width: 165}
            , {title: '操作', width: 150, fixed: 'right', align: 'center', toolbar: '#groupBtn'}
        ]]
        , done: function (res, curr, count) {
            console.log(res);
            console.log(curr);
            console.log(count);
            //如果是异步请求数据方式，res即为你接口返回的信息。
            //如果是直接赋值的方式，res即为：{data: [], count: 99} data为当前页数据、count为数据总长度
        }
    });

    var isUpdate = true;

    (function getData() {
        console.log('starting get data');
        $.ajax({
            url: '/tools/pay/index',
            type: 'POST',
            dataType: 'json',
        })
            .done(function(data) {
                console.log(data);
                table.render({
                    elem: '#dataBody' // 绑定元素
                    , id: 'toolPayList' // 唯一ID
                    , height: 'full-20' //高度最大化减去差值
                    , data: data.data
                    , page: true
                    , skin: 'row' //行边框风格
                    , even: true //开启隔行背景
                    , limits: [10, 30, 60, 90, 150]
                    , limit: 10 //默认采用30
                    , cols: [[
                        // {checkbox: true, fixed: true}
                        {field: 'enrollment_numbering', title: '招生编号', width: 150,fixed:true}
                        , {field: 'exam_code', title: '考试号', width: 150}
                        , {field: 'name', title: '姓名', width: 100}
                        , {field: 'sex', title: '性别', width: 80}
                        , {field: 'card_type', title: '证件类型', width: 100}
                        , {field: 'card_number', title: '证件号', width: 200}
                        , {field: 'created_at', title: '报到时间', width: 165}
                        , {field: 'updated_at', title: '修改时间', sort: true, width: 165}
                        // , {field: 'created_at', title: '创建时间', sort: true, width: 165}
                        , {title: '操作', width: 150, fixed: 'right', align: 'center', toolbar: '#groupBtn'}
                    ]]
                    , done: function (res, curr, count) {
                    }
                });
                console.log("success");
            })
            .fail(function() {
                console.log("error");
            })
            .always(function() {
                console.log("complete");
                setTimeout(function () {
                    if (isUpdate) {
                        getData();
                    }
                }, 5000);
            });
    }());

    // 事件处理
    var eventHandle = {
        // 确认报到
        sureData: function (obj) {
            var title = '学生现场缴费信息维护';
            var msg = '学生已完成现场缴费？';
            var sureUrl = '/tools/pay/sure';
            var postData = {code: obj.data.exam_code};
            yjsloading.ajaxConfirm(title, msg, sureUrl, postData, function (result) {
            });
        },
        // 删除（单条）
        deleteData: function (obj) {
            var title = '学生现场缴费信息维护';
            var msg = '确定删除该条现场缴费的学生数据？';
            var deleteUrl = '/tools/pay/delete';
            var postData = {code: obj.data.exam_code};
            yjsloading.ajaxConfirm(title, msg, deleteUrl, postData, function (result) {
            });
        },

        // 查看
        viewData: function (obj) {
            var viewUrl = '/tools/pay/item?view=' + obj.event + '&code=' + obj.data.exam_code;
            layer.open({
                type: 2
                , id: obj.event + obj.data.code // 只允许弹出一个
                , title: obj.data.name+"同学前来缴费，请确认信息"
                , area: ['500px', '400px']
                , shade: 0
                , maxmin: true
                , content: viewUrl
                , btn: ['确认', '取消']
                , zIndex: layer.zIndex // 当前窗体层叠顺序(layui自动维护)
                , success: function (layero, index) { // 弹出成功回调
                    // 置顶当前窗体
                    layer.setTop(layero);
                }
                , yes: function (index, layero) { // 确定按钮回调
                    layer.close(index);
                }
                , btn2: function (index, layero) { // 取消按钮回调
                    layer.close(index);
                }
                , cancel: function (index, layero) { // 关闭窗体成功回调
                    layer.close(index);
                }
            })
        },
        // 关键字搜索重载
        searchData: function (obj) {
            // 获取关键字
            var words = $('#searchReload').val();
            // 表格搜索、重载
            tbObj.reload({
                where: {keywords: words}
            });
        },
        showQRCode: function (obj) {
            var viewUrl = '/tools/pay/item?view=' + obj;
            layer.open({
                type: 2
                , id: 'identity'+obj.event // 只允许弹出一个
                , title: '现场缴费二维码'
                , area: ['500px', '400px']
                , shade: 0
                , maxmin: true
                , content: viewUrl
                , btn: ['确定']
                , zIndex: layer.zIndex // 当前窗体层叠顺序(layui自动维护)
                , success: function (layero, index) { // 弹出成功回调
                    // 置顶当前窗体
                    layer.setTop(layero);
                }
                , yes: function (index, layero) { // 确定按钮回调
                    layer.close(index);
                }
                , cancel: function (index, layero) { // 关闭窗体成功回调
                    layer.close(index);
                }
            })
        }
    };

    /**
     * 监听select
     */
    form.on('select(arrival_code)',function (data) {
        // 获取关键字
        tbObj.reload({
            where: {arrival_code: data.value,from_select:true}
        });
    });

    // 监听按钮点击事件 (非工具条)
    $('.layui-btn').on('click', function () {
        var type = $(this).data('type');
        eventHandle[type] ? eventHandle[type].call(this, type) : '';
    });

    // 监听工具条按钮点击事件
    table.on("tool(toolPayList)", function (obj) {
        // 获得当前行lay-event对应的值
        var itemEvent = obj.event;
        eventHandle[itemEvent] ? eventHandle[itemEvent].call(this, obj) : '';
    });


});